/**
 * @description 插入表情
 * @author aaron
 */
import Editor from 'wangeditor' // npm 安装

const {$, BtnMenu} = Editor;

class OssImage extends BtnMenu {
    constructor(editor) {
        const $elem = $(`<div class="w-e-menu tl-rich-text-menu">
                <i class="tl-icon-upload-img"/>
            </div>`)
        if (!editor.config.customUploadImg) {
            editor.config.customUploadImg = async (resultFiles, insertImgFn) => {
                // if (!this.fileUpload) await this.createFileUpload();
                // const fileIDs = []
                // for (let file of resultFiles) {
                //     const fileID = this.fileUpload.addFile({
                //         name: file.name,
                //         type: file.type,
                //         data: file
                //     });
                //     fileID && fileIDs.push(fileID)
                // }
                // this.insertImgFn = insertImgFn
            }
        }
        // editor.txt.eventHooks.pasteEvents.push(function (e) {
        //     console.log(e);
        //     debugger
        // })
        // 富文本销毁是销毁
        editor.beforeDestroy(() => this.destroy())
        if (!Array.isArray(editor.txt.eventHooks.clearContentEvents))
            editor.txt.eventHooks.clearContentEvents = []
        editor.txt.eventHooks.clearContentEvents.push(() => this.destroy())
        super($elem, editor)
    }

    /**
     * 菜单表情点击事件
     */
    clickHandler() {
        // 做任何你想做的事情
        // 可参考【常用 API】文档，来操作编辑器
        console.log(this);
        this.editor.config.ossUploadClick && this.editor.config.ossUploadClick({accept: 'image/*'})
    }

    // 菜单是否被激活（如果不需要，这个函数可以空着）
    // 1. 激活是什么？光标放在一段加粗、下划线的文本时，菜单栏里的 B 和 U 被激活，如下图
    // 2. 什么时候执行这个函数？每次编辑器区域的选区变化（如鼠标操作、键盘操作等），都会触发各个菜单的 tryChangeActive 函数，重新计算菜单的激活状态
    tryChangeActive() {
        // 激活菜单
        // 1. 菜单 DOM 节点会增加一个 .w-e-active 的 css class
        // 2. this.this.isActive === true
        // this.active()
        // // 取消激活菜单
        // // 1. 菜单 DOM 节点会删掉 .w-e-active
        // // 2. this.this.isActive === false
        // this.unActive()
    }

    destroy() {

    }
}

export default OssImage
